perm filename TREST.OLD[MSS,LCS]3 blob
sn#107251 filedate 1974-06-15 generic text, type T, neo UTF8
C******* SUBRS TAIL, FERMTA, REST, RDDATA, BREP, EXCH, SORT2, ALPHA
SUBROUTINE TAIL(RJX,RA,RMINI)
COMMON /STF/RSTFAC(8),RSTJC
COMMON /PLTR/IPLT,RHT,DIS
DIMENSION ITAIL(16)
DATA ITAIL/16,100090007,110012,120016,200120016,120019,100026,
1 80030,20036, 40, 33, 30031, 50029,80025,100022,120016/
Q=-1.
IF(RA)Q=1.
CALL CENTER(RJY)
CALL JDRAW(ITAIL(1),RJX,RJY,RMINI,1.,Q)
1 IF(IPLT.GE.0)RETURN
IF(RMINI.NE.RSTJC)Q=Q*.6
CC CALL OLDFIL(ITAIL(10),RJX,RJY,ABS(Q),Q)
CALL FILLMS(ITAIL(1),ITAIL(5),RJX,RJY,ABS(Q),Q)
C RA=-,STEM UP; RA=+, STEM DOWN.
END
SUBROUTINE REST
COMMON /STF/RSTFAC(8),RSTJC
COMMON /PLTR/IPLT,RHT,DIS
COMMON RJB,JA,CENTR,JB,RJQ(20),JQ(20)
EQUIVALENCE(JE,JQ(3))
DIMENSION LRST(4),IRST(74)
IF(LRST(1).EQ.0)CALL RDDATA('REST',LRST,IRST)
L=JE
IF(L.GT.1)L=1
K=LRST(L+3)
C L>3 WHEN SEVERAL TAILS ON REST
CALL CENTER(CENTR)
CALL JDRAW(IRST(K),RJB,CENTR,RSTJC,1.,1.)
IF(JE.OR.IPLT.GE.0)RETURN
CALL OLDFIL(IRST(IRST(K)+K+1),RJB,CENTR,1.,1.)
C WHY GO THROUGH NOTWRT??
END
SUBROUTINE RDDATA(NM,JARY,IARY)
C READS DATA
DIMENSION JARY(1),IARY(1)
REWIND 23
CALL IFILE(23,NM)
READ(23,5)K,(JARY(K),K=1,10)
N=1
1 READ(23,5,END=2)K,L,(IARY(K),K=N,N+L-1)
N=N+L
GO TO 1
2 RETURN
5 FORMAT(12I)
END
C FOR SINGLE (OR DOUBLE) BAR REPEAT SIGN
SUBROUTINE BREP(RJB,RSTJC)
DIMENSION JREP(1),IREP(35)
DATA IREP/35,100000015,280043,290043, 10015, 20015, 300043,310043
1,30015, 40015, 320043,100020037, 30038, 40038, 50037
1,50036, 40035, 30035, 20036, 20037, 50037, 20036, 40036
1,100270022,280021,290021,300022,300023,290024,280024,270023
1,270022, 300022, 270023, 290023/
CC IF(JREP(1).EQ.0)CALL RDDATA('BREP',JREP,IREP)
CALL CENTER(R)
CALL JDRAW(IREP,RJB,R,RSTJC,1.,1.)
END
SUBROUTINE FERMTA(RINV)
COMMON RJB,JA,CENTR,JB,RJQ(20),JQ(20)
COMMON /PLTR/IPLT,RHT,DIS
COMMON /STF/RSTFAC(8),RSTJC
DIMENSION JFERM(24)
DATA JFERM/24,310020003,10010010,20015,60017,110017,160015,
1 190010,200003,170010,150012,120014,70014,30012,10010,
1 10020003,100070007,80008,100008,110007,110006,100005,80005
1 ,70006/
CC IF(JFERM(1).EQ.0)CALL RDDATA('FERM',JFERM,IFERM)
CC R=INV
CALL JDRAW(JFERM,RJB,CENTR,RSTJC,1.,RINV)
CC IF(IPLT)CALL OLDFIL(IFERM(IFERM(1)+2),RJB,CENTR,1.,RINV)
IF(IPLT)CALL FILLMS(JFERM(1),JFERM(2),RJB,CENTR,1.,RINV)
END
SUBROUTINE EXCH(X,Y)
Z=X
X=Y
Y=Z
END
SUBROUTINE SORT2(RPOS,M)
DIMENSION RPOS(2,200)
L=2
3 J=-1
RX=RPOS(1,L-1)
DO 2 K=L,M
IF(RPOS(1,K).GE.RX)GO TO 2
RX=RPOS(1,K)
C WHY WERE ALL THE RX'S JX ????? 9/6/73
J=K
2 CONTINUE
IF(J)GO TO 4
K=L-1
CALL EXCH(RPOS(1,K),RPOS(1,J))
CALL EXCH(RPOS(2,K),RPOS(2,J))
4 L=L+1
IF(L.LE.M)GO TO 3
END
C****** FOR LISTS OF LETTERS, ETC. *******
SUBROUTINE ALPHA
COMMON /PLTR/IPLT,RHT,DIS
COMMON RJB,JA,CENTR,JB,RJQ(20),JQ(20)
EQUIVALENCE(JC,JQ(1)),(JD,JQ(2)),(JE,JQ(3)),(RJE,RJQ(3)),
1(RJH,RJQ(6)),(NRJ,RJQ(8)),
1(RJF,RJQ(4)),(JG,JQ(5)),(JH,JQ(6)),(JI,JQ(7)),(JJ,JQ(8))
1,(JK,JQ(9)),(JF,JQ(4)),(RJG,RJQ(5)),(RJD,RJQ(2))
COMMON/STF/RSTFAC(8),RSTJC
DATA RS/1.1/,R4/-2.1/,RSPC/.9/,JFIX/-1/
IF(JA.EQ.20)GO TO 20
CC IFNT=0
C PRIMITIVE IS DEFAULT FONT. #=SET BACK TO PRIM.
C ONLY 11 LETTERS WITHOUT FONT RESET.
CC JA=5
54 R=19.7*RJE*RSTJC
RB=JB
CC J=R
CC RND=R-J
CC R=0
CC RSX=RS
DO 50 KA=4,6
JY=RJQ(KA)*100.+.2
JX=1000000
DO 53 LA=1,4
JF=JY/JX
IF(JF.EQ.47.OR.JF.GT.90)GO TO 2
IF(JF.LT.47.AND.IFNT.EQ.0)GO TO 3
C JUMP TO USE PRIMITIVE ALPHABET.
CC RS=RSX
IF((JF.GT.9.AND.JF.LT.36).OR.JF.GT.47)GO TO 10
C NEXT FOR NUMBERS, SPACE AND PUNCTUATION.
CC RSX=RS
RSX=RSPC
IF(JF.GT.9)GO TO 3
GO TO 4
10 IF(JF.LT.47)GO TO 5
IF(JF.NE.48)GO TO 7
IFNT=1
C $=48=UPPER CASE
CC RSX=1.1
GO TO 11
7 IF(JF.NE.49)GO TO 8
IFNT=-1
C %=LOWER CASE
CC RSX=.73
GO TO 11
8 IF(JF.NE.50)GO TO 13
NR='BDR40'
CC IF(JFIX)NR='FIX40'
C &=NON-ITALICS -- JFIX IS TEMPORARY SWITCH 5/74
13 IF(JF.NE.51)GO TO 14
NR='BDI40'
CC IF(JFIX)NR='FIZ40'
C @=51=ITALICS
14 IF(JF.NE.52)GO TO 11
IFNT=0
C #=52=PRIMITIVE
JA=5
RSX=1.
GO TO 11
9 IF(JF.LT.52)GO TO 11
IF(JF.EQ.53)FILL=-2
IF(JF.EQ.54)FILL=0
C < = 53 = NO FILL, > = 54 = FILL
GO TO 11
5 IF(IFNT)RSX=.8
IF(JF.LE.9)RSX=RSPC
IF(JF.EQ.22.OR.JF.EQ.32)RSX=RSX*1.1
IF(JF.EQ.1.OR.JF.EQ.18.OR.JF.EQ.19.OR.(JF.EQ.21.AND.IFNT))
1 RSX=RSX*.8
4 IF(JFIX.AND.IPLT.GE.0)GO TO 3
C JFIX=-1 FOR FIXED WIDTH OF FONTS. = AND ONLY DPYS PRIMITIVE.
C******** SET JFIX TO -1 IN DDT TO USE FIXED WIDTH.
JE=JF
IF(IFNT.AND.JE.GT.9)JE=JE+26
RX=RJF
RJF=RJE*.28
C .29 IS SIZE FACTOR -- PERHAPS CHANGE SIZE IN FONT TO =1.
RY=RJG
RJG=RJF
RZ=RJH
RW=RJD
RJD=RJD+R4
RJH=FILL
NRJ=NR
C GETS RIGHT FILE
JA=11
CALL NOTWRT
RJF=RX
RJG=RY
RJH=RZ
RJD=RW
C PUTS BACK RIGHT STUFF
IF(JFIX)GO TO 12
GO TO 2
3 JA=5
CALL NOTWRT
C 47=BLANK (WAS 99)
CC2 JB=JB+J
12 RSX=1.
2 RB=RB+R*RSX
JB=ROFF(RB)
CC R=R+RND
CC IF(R.LT.1.0)GO TO 11
CC JB=JB+1
CC R=R-1.0
11 JY=JY-JF*JX
RSX=RS
53 JX=JX/100
50 CONTINUE
RETURN
C FOR TRILLS
20 R=RJB
C R SAVES RJB(WHICH GETS CLOBBERED WHEN 'TR' IS WRITTEN.)
C 20, POS1, STF, NT#, 0, POS2, X IF X=1 THEN NO WAVEY LINE
RJE=.65
JE=0
JA=5
JF=29
C DRAWS T
CALL NOTWRT
JF=27
C DRAWS R
JB=JB+11*RSTJC
51 CALL NOTWRT
IF(JG.NE.0)RETURN
JB=JB+16*RSTJC
C RETURN IF NO WAVY LINE IS NEEDED
JA=4
RJB=R+4.*RSTJC
JG=-2
C JG IS SWITCH TO DRAW WIGGLE
RJE=RJD+.8
CALL ITMSUB
END